package com.chijun.mform.test;


import com.example.ccj.u.server.Result;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.POST;

/**
 * 接口缓存配置
 * @Headers("Cache-Control: public, max-age=" + 24 * 3600)  //24小时缓存
 * @author 驰珺
 * whechat   : chijun9
 * create at : 2024/6/6 19:22
 */
public interface CreateFormService {

    /**
     * 获取新建表单的基础数据
     * 1小时缓存
     * @return 1
     */
    @Headers("Cache-Control: public, max-age=" + 3600)
    @POST("/form/create/getCreateFormData")
    @FormUrlEncoded
    Observable<Result> getCreateFormData(@Field("id") String id);

    /**
     * 获取组织的人员列表
     * 10分钟缓存
     * @return 1
     */
    @Headers("Cache-Control: public, max-age=" + 600)
    @POST("/form/create/getCreateProcessPerson")
    @FormUrlEncoded
    Observable<Result> getCreateProcessPerson(@Field("id") String id);

    /**
     * 新建表
     * @param formData 新建表json数据
     * @return 1
     */
    @POST("/form/create/saveCreateForm")
    @FormUrlEncoded
    Observable<Result> saveCreateForm(@Field("form_data") String formData);


    /**
     * 获取表单配置
     * 10分钟缓存
     * @param formId 表id
     * @return 1
     */
    @Headers("Cache-Control: public, max-age=" + 600)
    @POST("/form/fill/getFillInFormConfigData")
    @FormUrlEncoded
    Observable<Result> getFillInFormConfigData(@Field("formId") String formId);

    /**
     * 保存填写的表单数据
     * @param formData 填写的表单json数据
     * @return 1
     */
    @POST("/form/fill/saveFormData")
    @FormUrlEncoded
    Observable<Result> saveFormData(@Field("formData") String formData);

    /**
     * 获取人员所属组织的全部表单
     * 10分钟缓存
     * @param formData 这个没用，因为必须加一个才加的
     * @return 1
     */
    @Headers("Cache-Control: public, max-age=" + 600)
    @POST("/form/fill/getAllForm")
    @FormUrlEncoded
    Observable<Result> getAllForm(@Field("formData") String formData);


    /**
     * 加载填写的表单数据
     * @param fullFormData  要加载数据的表单编号
     * @return 1
     */
    @Headers("Cache-Control: public, max-age=" + 600)
    @POST("/form/sp/loadFullData")
    @FormUrlEncoded
    Observable<Result> loadFullData(@Field("fullFormData") String fullFormData);


    /**
     * 审批结果更新
     * @param approvePerson 当前的审批人员及审批结果
     * @return 1
     */
    @POST("/form/sp/formFullApprove")
    @FormUrlEncoded
    Observable<Result> formFullUpdateApprove(@Field("approvePerson") String approvePerson);

    /**
     * 评论
     * @param approvePerson 评论人员及评论内容
     * @return 1
     */
    @POST("/form/sp/formFullPingLun")
    @FormUrlEncoded
    Observable<Result> formFullPingLun(@Field("approvePerson") String approvePerson);

    /**
     * 转交
     * @param forPersonId 转交人的id
     * @param approvePerson 转交mode
     * @return 1
     */
    @POST("/form/sp/formFullZhuanJiao")
    @FormUrlEncoded
    Observable<Result> formFullZhuanJiao(@Field("forPersonId")  String forPersonId,
                                         @Field("approvePerson") String approvePerson);


    /**
     * 获取服务器填写的表单列表
     *
     * @param formId 表单id
     * @param startIndex 从第几个开始获取
     * @param count 一共获取多少个
     * @return 1
     */
    @POST("/form/show/getServerFormDataReturns")
    @FormUrlEncoded
    Observable<Result> getServerFormDataReturns(@Field("formId") long formId,
                                                @Field("startIndex") int startIndex,
                                                @Field("count") int count );

    /**
     * 返回根据上传的字符串从服务器查找到的数据
     *
     * @param formId        表单id
     * @param searchText    查找的字符串
     * @return              返回查找到的数据
     */
    @POST("/form/show/getServerSearchesForFormDataReturns")
    @FormUrlEncoded
    Observable<Result> getServerSearchesForFormDataReturns(@Field("formId") long formId,
                                                           @Field("searchText")String searchText);



}
